package com.jwds.digital.bios.business.core.infrastructure.dto.belt.assembler;

import com.jwds.digital.bios.business.core.infrastructure.dto.belt.BeltHealthHourReqDTO;
import com.jwds.digital.bios.business.core.infrastructure.vo.belt.BeltHealthHourRespVO;
import com.jwds.digital.bios.business.core.infrastructure.entity.belt.BeltHealthHour;
import java.util.Objects;

/**
 * BeltHealthHour DTO与Entity之间的相互转换
 *
 * @author 林柏云
 * @date 2024-10-24
 */
public class BeltHealthHourAssembler {

  /**
  * 将传输对象转换为实体对象
  *
  * @param dto 传输对象
  * @return 实体对象
  */
  public static BeltHealthHour dto2entity(BeltHealthHourReqDTO dto)  {
    if (dto == null) {
      return null;
    }
    BeltHealthHour entity = new BeltHealthHour();
    entity.setBeltName(dto.getBeltName());
    entity.setDate(dto.getDate());
    entity.setNoLoadResistance(dto.getNoLoadResistance());
    entity.setNoLoadResistancePower(dto.getNoLoadResistancePower());
    entity.setNoLoadResistanceIncrease(dto.getNoLoadResistanceIncrease());
    entity.setLoadFluctuation(dto.getLoadFluctuation());
    entity.setLoadImpact(dto.getLoadImpact());
    entity.setOverloadRateIncrease(dto.getOverloadRateIncrease());
    entity.setHighStartupFrequency(dto.getHighStartupFrequency());
    entity.setTemperatureAnomaly(dto.getTemperatureAnomaly());
    entity.setVibrationAnomaly(dto.getVibrationAnomaly());
    entity.setSlipAnomaly(dto.getSlipAnomaly());
    entity.setRopeAnomaly(dto.getRopeAnomaly());
    entity.setLightDeviationAnomaly(dto.getLightDeviationAnomaly());
    entity.setHeavyDeviationAnomaly(dto.getHeavyDeviationAnomaly());
    entity.setTearAnomaly(dto.getTearAnomaly());
    entity.setBlockageAnomaly(dto.getBlockageAnomaly());
    return entity;
  }

  /**
  * 将传输对象转换为实体对象
  *
  * @param dto 传输对象
  * @param entity 原实体对象
  * @return 实体对象
  */
  public static BeltHealthHour dto2entity(BeltHealthHourReqDTO dto, BeltHealthHour entity){
    if (dto == null) {
      return null;
    }
    if(Objects.nonNull(dto.getBeltName())) {
      entity.setBeltName(dto.getBeltName());
    }
    if(Objects.nonNull(dto.getDate())) {
      entity.setDate(dto.getDate());
    }
    if(Objects.nonNull(dto.getNoLoadResistance())) {
      entity.setNoLoadResistance(dto.getNoLoadResistance());
    }
    if(Objects.nonNull(dto.getNoLoadResistancePower())) {
      entity.setNoLoadResistancePower(dto.getNoLoadResistancePower());
    }
    if(Objects.nonNull(dto.getNoLoadResistanceIncrease())) {
      entity.setNoLoadResistanceIncrease(dto.getNoLoadResistanceIncrease());
    }
    if(Objects.nonNull(dto.getLoadFluctuation())) {
      entity.setLoadFluctuation(dto.getLoadFluctuation());
    }
    if(Objects.nonNull(dto.getLoadImpact())) {
      entity.setLoadImpact(dto.getLoadImpact());
    }
    if(Objects.nonNull(dto.getOverloadRateIncrease())) {
      entity.setOverloadRateIncrease(dto.getOverloadRateIncrease());
    }
    if(Objects.nonNull(dto.getHighStartupFrequency())) {
      entity.setHighStartupFrequency(dto.getHighStartupFrequency());
    }
    if(Objects.nonNull(dto.getTemperatureAnomaly())) {
      entity.setTemperatureAnomaly(dto.getTemperatureAnomaly());
    }
    if(Objects.nonNull(dto.getVibrationAnomaly())) {
      entity.setVibrationAnomaly(dto.getVibrationAnomaly());
    }
    if(Objects.nonNull(dto.getSlipAnomaly())) {
      entity.setSlipAnomaly(dto.getSlipAnomaly());
    }
    if(Objects.nonNull(dto.getRopeAnomaly())) {
      entity.setRopeAnomaly(dto.getRopeAnomaly());
    }
    if(Objects.nonNull(dto.getLightDeviationAnomaly())) {
      entity.setLightDeviationAnomaly(dto.getLightDeviationAnomaly());
    }
    if(Objects.nonNull(dto.getHeavyDeviationAnomaly())) {
      entity.setHeavyDeviationAnomaly(dto.getHeavyDeviationAnomaly());
    }
    if(Objects.nonNull(dto.getTearAnomaly())) {
      entity.setTearAnomaly(dto.getTearAnomaly());
    }
    if(Objects.nonNull(dto.getBlockageAnomaly())) {
      entity.setBlockageAnomaly(dto.getBlockageAnomaly());
    }
    return entity;
  }

  /**
  * 将实体对象转换为传输对象
  *
  * @param entity 实体对象
  * @return 传输对象
  */
  public static BeltHealthHourRespVO entity2dto(BeltHealthHour entity) {
    if (entity == null) {
      return null;
    }
    BeltHealthHourRespVO dto = new BeltHealthHourRespVO();
    dto.setId(entity.getId());
    dto.setBeltName(entity.getBeltName());
    dto.setDate(entity.getDate());
    dto.setNoLoadResistance(entity.getNoLoadResistance());
    dto.setNoLoadResistancePower(entity.getNoLoadResistancePower());
    dto.setNoLoadResistanceIncrease(entity.getNoLoadResistanceIncrease());
    dto.setLoadFluctuation(entity.getLoadFluctuation());
    dto.setLoadImpact(entity.getLoadImpact());
    dto.setOverloadRateIncrease(entity.getOverloadRateIncrease());
    dto.setHighStartupFrequency(entity.getHighStartupFrequency());
    dto.setTemperatureAnomaly(entity.getTemperatureAnomaly());
    dto.setVibrationAnomaly(entity.getVibrationAnomaly());
    dto.setSlipAnomaly(entity.getSlipAnomaly());
    dto.setRopeAnomaly(entity.getRopeAnomaly());
    dto.setLightDeviationAnomaly(entity.getLightDeviationAnomaly());
    dto.setHeavyDeviationAnomaly(entity.getHeavyDeviationAnomaly());
    dto.setTearAnomaly(entity.getTearAnomaly());
    dto.setBlockageAnomaly(entity.getBlockageAnomaly());
    dto.setCreateTime(entity.getCreateTime());
    dto.setModifyTime(entity.getModifyTime());
    dto.setCreateUser(entity.getCreateUser());
    dto.setModifyUser(entity.getModifyUser());
    return dto;
  }

}
